home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2.0 - Programmer's Utilities Power Pack / Delphi 2.0 Programmer's Utilities Power Pack.iso / e_to_l / itgraph / msvc15 / dlgline.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-15  |  4.3 KB  |  148 lines

  1. // dlgline.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "itgdemo.h"
  6. #include "dlgline.h"
  7.  
  8. #ifdef _DEBUG
  9. #undef THIS_FILE
  10. static char BASED_CODE THIS_FILE[] = __FILE__;
  11. #endif
  12.  
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CDlgLine dialog
  15.  
  16.  
  17. CDlgLine::CDlgLine(CVBControl *pITGraph, CWnd* pParent /*=NULL*/)
  18.     : CDialog(CDlgLine::IDD, pParent)
  19. {
  20.     m_ITGraph = pITGraph;
  21.       int fromIx = (int)m_ITGraph->GetNumProperty("ConnectFromIndex");
  22.     int toIx = (int)m_ITGraph->GetNumProperty("ConnectToIndex");
  23.  
  24.     //{{AFX_DATA_INIT(CDlgLine)
  25.     m_ConId = m_ITGraph->GetNumProperty("ConnectionId");
  26.     m_ConData = m_ITGraph->GetNumProperty("ConnectionData");
  27.     m_ConAlign = (int)m_ITGraph->GetNumProperty("ConnectionAlign");
  28.     m_ConLabel = m_ITGraph->GetStrProperty("ConnectionLabel");
  29.     m_ConFrom = m_ITGraph->GetStrProperty("List", fromIx);
  30.     m_ConTo = m_ITGraph->GetStrProperty("List", toIx);
  31.     m_ConArrow = (int)m_ITGraph->GetNumProperty("ConnectionArrow");
  32.     m_ConWidth = (int)m_ITGraph->GetNumProperty("ConnectionLineWidth");
  33.     //}}AFX_DATA_INIT
  34.  
  35.     m_ConColor = (COLORREF)m_ITGraph->GetNumProperty("ConnectionColor");
  36. }
  37.  
  38. void CDlgLine::DoDataExchange(CDataExchange* pDX)
  39. {
  40.     CDialog::DoDataExchange(pDX);
  41.     //{{AFX_DATA_MAP(CDlgLine)
  42.     DDX_Text(pDX, IDC_EDTCONID, m_ConId);
  43.     DDX_Text(pDX, IDC_EDTCONDATA, m_ConData);
  44.     DDX_CBIndex(pDX, IDC_CMBCONALIGN, m_ConAlign);
  45.     DDX_Text(pDX, IDC_EDTCONLBL, m_ConLabel);
  46.     DDV_MaxChars(pDX, m_ConLabel, 255);
  47.     DDX_Text(pDX, IDC_EDTCONFROM, m_ConFrom);
  48.     DDX_Text(pDX, IDC_EDTCONTO, m_ConTo);
  49.     DDX_CBIndex(pDX, IDC_CMBCONARROW, m_ConArrow);
  50.     DDX_Text(pDX, IDC_EDTCONWIDTH, m_ConWidth);
  51.     DDV_MinMaxInt(pDX, m_ConWidth, -1, 9);
  52.     //}}AFX_DATA_MAP
  53.     
  54.     ::SetScrollRange(GetDlgItem(IDC_SCRCONWIDTH)->m_hWnd, SB_CTL, -1, 9, FALSE);
  55.     ::SetScrollPos(GetDlgItem(IDC_SCRCONWIDTH)->m_hWnd, SB_CTL, m_ConWidth, TRUE);
  56. }
  57.  
  58. BEGIN_MESSAGE_MAP(CDlgLine, CDialog)
  59.     //{{AFX_MSG_MAP(CDlgLine)
  60.     ON_WM_HSCROLL()
  61.     ON_BN_CLICKED(IDREMOVE, OnRemove)
  62.     ON_WM_DRAWITEM()
  63.     ON_BN_CLICKED(IDC_CONCOLOR, OnConcolor)
  64.     //}}AFX_MSG_MAP
  65. END_MESSAGE_MAP()
  66.  
  67.  
  68. /////////////////////////////////////////////////////////////////////////////
  69. // CDlgLine message handlers
  70.  
  71. void CDlgLine::OnOK()
  72. {
  73.     if(UpdateData(TRUE)) {
  74.         m_ITGraph->SetStrProperty("ConnectionLabel", m_ConLabel);
  75.         m_ITGraph->SetNumProperty("ConnectionData", m_ConData);
  76.         m_ITGraph->SetNumProperty("ConnectionAlign", m_ConAlign);
  77.         m_ITGraph->SetNumProperty("ConnectionArrow", m_ConArrow);
  78.         m_ITGraph->SetNumProperty("ConnectionLineWidth", m_ConWidth);
  79.         m_ITGraph->SetNumProperty("ConnectionColor", (LONG)m_ConColor);
  80.     
  81.         CDialog::OnOK();
  82.     }
  83. }
  84.  
  85. void CDlgLine::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
  86. {
  87.     int oldPos = pScrollBar->GetScrollPos();
  88.     int newPos = oldPos;
  89.     
  90.     switch(nSBCode) {
  91.         case SB_LINELEFT:
  92.         case SB_PAGELEFT:
  93.             newPos--;
  94.             break;
  95.         case SB_LINERIGHT:
  96.         case SB_PAGERIGHT:
  97.             newPos++;
  98.             break;
  99.         case SB_THUMBPOSITION:
  100.             newPos = (int)nPos;
  101.             break;
  102.     }
  103.     pScrollBar->SetScrollPos(newPos, TRUE);
  104.     
  105.     char tmpStr[8];
  106.     sprintf(tmpStr, "%d", pScrollBar->GetScrollPos());
  107.     SendDlgItemMessage(IDC_EDTCONWIDTH, WM_SETTEXT, 0, (LPARAM)tmpStr);
  108. }
  109.  
  110. void CDlgLine::OnRemove()
  111. {
  112.       int fromIx = (int)m_ITGraph->GetNumProperty("ConnectFromIndex");
  113.     int toIx = (int)m_ITGraph->GetNumProperty("ConnectToIndex");
  114.     
  115.     m_ITGraph->SetNumProperty("RemoveFrom", toIx, fromIx);
  116.     EndDialog(TRUE);
  117. }
  118.  
  119. void CDlgLine::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
  120. {
  121.     if(nIDCtl == IDC_CONCOLOR) {
  122.         RECT rcItem;
  123.         HBRUSH hbrItem;
  124.         HDC hdcItem;
  125.         
  126.         rcItem = lpDrawItemStruct->rcItem;
  127.         hbrItem = ::CreateSolidBrush(m_ConColor);
  128.         hdcItem = lpDrawItemStruct->hDC;
  129.         hbrItem = (HBRUSH)::SelectObject(hdcItem, hbrItem);
  130.         ::Rectangle(hdcItem, rcItem.left, rcItem.top, rcItem.right, rcItem.bottom);
  131.         hbrItem = (HBRUSH)::SelectObject(hdcItem, hbrItem);
  132.         ::DeleteObject(hbrItem);
  133.     }
  134.     
  135.     CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
  136. }
  137.  
  138. void CDlgLine::OnConcolor()
  139. {
  140.     CColorDialog dlgColor;
  141.     dlgColor.m_cc.rgbResult = m_ConColor;
  142.     dlgColor.m_cc.Flags = CC_ENABLEHOOK + CC_RGBINIT;
  143.     if(dlgColor.DoModal()) {
  144.         m_ConColor = dlgColor.GetColor();
  145.         ::InvalidateRect(GetDlgItem(IDC_CONCOLOR)->m_hWnd, NULL, TRUE);
  146.     }
  147. }
  148.